=> submit_bio
=> iomap_submit_ioend
=> xfs_vm_writepages
=> do_writepages
=> filemap_fdatawrite_wbc
=> __filemap_fdatawrite_range
=> xfs_release
=> __fput
=> task_work_run
=> syscall_exit_to_user_mode
=> do_syscall_64
=> entry_SYSCALL_64_after_hwframe

submit_bio() {
  submit_bio_noacct() {
    should_fail_bio();
    submit_bio_noacct_nocheck() {
      blk_cgroup_bio_start();
      ktime_get();
      __submit_bio() {
        blk_mq_submit_bio() {
          __get_task_ioprio();
          bio_integrity_prep();
          blk_mq_attempt_bio_merge() {
            blk_attempt_plug_merge();
            blk_mq_sched_bio_merge() {
              dd_bio_merge() {
                _raw_spin_lock();
                blk_mq_sched_try_merge() {
                  elv_merge() {
                    elv_rqhash_find();
                    dd_request_merge() {
                      elv_rb_find();
                    } /* dd_request_merge */
                  } /* elv_merge */
                } /* blk_mq_sched_try_merge */
              } /* dd_bio_merge */
            } /* blk_mq_sched_bio_merge */
          } /* blk_mq_attempt_bio_merge */
          __rq_qos_throttle() {
            wbt_wait() {
              bio_to_wbt_flags();
              rq_qos_wait() {
                wbt_inflight_cb() {
                  rq_wait_inc_below();
                } /* wbt_inflight_cb */
              } /* rq_qos_wait */
              rwb_arm_timer() {
                nsecs_to_jiffies();
                mod_timer() {
                  lock_timer_base() {
                    _raw_spin_lock_irqsave();
                  } /* lock_timer_base */
                  detach_if_pending();
                  get_nohz_timer_target();
                  _raw_spin_lock();
                  calc_wheel_index();
                  enqueue_timer();
                  _raw_spin_unlock_irqrestore();
                } /* mod_timer */
              } /* rwb_arm_timer */
            } /* wbt_wait */
          } /* __rq_qos_throttle */
          __blk_mq_alloc_requests() {
            dd_limit_depth();
            blk_mq_get_tag() {
              __blk_mq_get_tag();
            } /* blk_mq_get_tag */
            blk_mq_rq_ctx_init.isra.0() {
              dd_prepare_request();
            } /* blk_mq_rq_ctx_init.isra.0 */
            ktime_get();
          } /* __blk_mq_alloc_requests */
          __rq_qos_track() {
            wbt_track();
          } /* __rq_qos_track */
          blk_mq_bio_to_request() {
            update_io_ticks() {
              part_in_flight();
            } /* update_io_ticks */
          } /* blk_mq_bio_to_request */
          blk_mq_insert_request() {
            dd_insert_requests() {
              _raw_spin_lock();
              dd_insert_request.isra.0() {
                blk_mq_sched_try_insert_merge() {
                  elv_attempt_insert_merge() {
                    elv_rqhash_find();
                  } /* elv_attempt_insert_merge */
                } /* blk_mq_sched_try_insert_merge */
                elv_rb_add();
                elv_rqhash_add();
              } /* dd_insert_request.isra.0 */
            } /* dd_insert_requests */
          } /* blk_mq_insert_request */
          blk_mq_run_hw_queue() {
            blk_mq_hctx_has_pending() {
              dd_has_work();
            } /* blk_mq_hctx_has_pending */
            blk_mq_delay_run_hw_queue() {
              blk_mq_hctx_next_cpu();
              __msecs_to_jiffies();
              kblockd_mod_delayed_work_on() {
                mod_delayed_work_on() {
                  try_to_grab_pending() {
                    timer_delete();
                  } /* try_to_grab_pending */
                  __queue_delayed_work() {
                    __queue_work() {
                      __queue_work.part.0() {
                        _raw_spin_lock();
                        _raw_spin_lock();
                        insert_work();
                        kick_pool() {
                          wake_up_process() {
                            try_to_wake_up() {
                              _raw_spin_lock_irqsave();
                              kthread_is_per_cpu();
                              ttwu_queue_wakelist();
                              _raw_spin_lock();
                              update_rq_clock() {
                                update_rq_clock_task() {
                                  psi_account_irqtime();
                                  update_irq_load_avg();
                                } /* update_rq_clock_task */
                              } /* update_rq_clock */
                              ttwu_do_activate() {
                                activate_task() {
                                  enqueue_task_fair() {
                                    enqueue_entity() {
                                      update_curr() {
                                        update_min_vruntime();
                                        cpuacct_charge();
                                      } /* update_curr */
                                      __update_load_avg_se();
                                      __update_load_avg_cfs_rq() {
                                        __accumulate_pelt_segments();
                                      } /* __update_load_avg_cfs_rq */
                                      update_cfs_group();
                                      place_entity() {
                                        avg_vruntime();
                                        __calc_delta.constprop.0();
                                      } /* place_entity */
                                      __enqueue_entity();
                                    } /* enqueue_entity */
                                    overload_set();
                                    hrtick_update();
                                  } /* enqueue_task_fair */
                                } /* activate_task */
                                check_preempt_curr() {
                                  check_preempt_wakeup() {
                                    update_curr();
                                    pick_eevdf() {
                                      vruntime_eligible();
                                      vruntime_eligible();
                                    } /* pick_eevdf */
                                    resched_curr();
                                  } /* check_preempt_wakeup */
                                } /* check_preempt_curr */
                              } /* ttwu_do_activate */
                              raw_spin_rq_unlock();
                              _raw_spin_unlock_irqrestore();
                            } /* try_to_wake_up */
                          } /* wake_up_process */
                        } /* kick_pool */
                      } /* __queue_work.part.0 */
                    } /* __queue_work */
                  } /* __queue_delayed_work */
                } /* mod_delayed_work_on */
              } /* kblockd_mod_delayed_work_on */
            } /* blk_mq_delay_run_hw_queue */
          } /* blk_mq_run_hw_queue */
        } /* blk_mq_submit_bio */
      } /* __submit_bio */
    } /* submit_bio_noacct_nocheck */
  } /* submit_bio_noacct */
} /* submit_bio */

=> iscsi_queuecommand
=> scsi_dispatch_cmd
=> scsi_queue_rq
=> blk_mq_dispatch_rq_list
=> __blk_mq_do_dispatch_sched
=> __blk_mq_sched_dispatch_requests
=> blk_mq_sched_dispatch_requests
=> blk_mq_run_work_fn
=> process_one_work
=> worker_thread
=> kthread
=> ret_from_fork
=> ret_from_fork_asm


blk_mq_dispatch_rq_list() {
  blk_mq_prep_dispatch_rq() {
    __blk_mq_get_driver_tag();
  } /* blk_mq_prep_dispatch_rq */
  scsi_queue_rq() {
    scsi_prepare_cmd() {
      scsi_init_command() {
        scsi_initialize_rq();
        init_timer_key();
      } /* scsi_init_command */
      sd_init_command [sd_mod]() {
        sd_setup_read_write_cmnd [sd_mod]() {
          scsi_alloc_sgtables() {
            __blk_rq_map_sg() {
              __blk_bios_map_sg();
            } /* __blk_rq_map_sg */
          } /* scsi_alloc_sgtables */
        } /* sd_setup_read_write_cmnd [sd_mod] */
      } /* sd_init_command [sd_mod] */
    } /* scsi_prepare_cmd */
    blk_mq_start_request() {
      ktime_get();
      __rq_qos_issue() {
        wbt_issue();
      } /* __rq_qos_issue */
      blk_add_timer();
    } /* blk_mq_start_request */
    scsi_dispatch_cmd() {
      scsi_log_send();
      iscsi_queuecommand [libiscsi]() {
        _raw_spin_lock_bh();
        iscsi_session_chkready [scsi_transport_iscsi]();
        queue_work_on() {
          __queue_work() {
            __queue_work.part.0() {
              wq_select_unbound_cpu();
              _raw_spin_lock();
              insert_work();
              kick_pool() {
                wake_up_process() {
                  try_to_wake_up() {
                    _raw_spin_lock_irqsave();
                    select_task_rq_fair() {
                      set_task_select_cpus();
                      select_idle_sibling() {
                        available_idle_cpu();
                      } /* select_idle_sibling */
                    } /* select_task_rq_fair */
                    kthread_is_per_cpu();
                    ttwu_queue_wakelist() {
                      __smp_call_single_queue() {
                        call_function_single_prep_ipi();
                        native_send_call_func_single_ipi() {
                          x2apic_send_IPI() {
                            __x2apic_send_IPI_dest();
                          } /* x2apic_send_IPI */
                        } /* native_send_call_func_single_ipi */
                      } /* __smp_call_single_queue */
                    } /* ttwu_queue_wakelist */
                    _raw_spin_unlock_irqrestore();
                  } /* try_to_wake_up */
                } /* wake_up_process */
              } /* kick_pool */
            } /* __queue_work.part.0 */
          } /* __queue_work */
        } /* queue_work_on */
        _raw_spin_unlock_bh() {
          __local_bh_enable_ip();
        } /* _raw_spin_unlock_bh */
      } /* iscsi_queuecommand [libiscsi] */
    } /* scsi_dispatch_cmd */
  } /* scsi_queue_rq */
} /* blk_mq_dispatch_rq_list */


scsi_complete() {
  scsi_decide_disposition() {
    scsi_handle_queue_ramp_up();
  } /* scsi_decide_disposition */
  scsi_log_completion();
  scsi_finish_command() {
    scsi_device_unbusy() {
      scsi_dec_host_busy();
    } /* scsi_device_unbusy */
    scsi_io_completion() {
      scsi_end_request() {
        blk_update_request() {
          bio_endio() {
            bio_uninit();
            bio_map_kern_endio() {
              bio_uninit();
              kfree() {
                __kmem_cache_free();
              } /* kfree */
            } /* bio_map_kern_endio */
          } /* bio_endio */
        } /* blk_update_request */
        add_disk_randomness() {
          add_timer_randomness() {
            _raw_spin_lock_irqsave();
            blake2s_update();
            blake2s_update();
            _raw_spin_unlock_irqrestore();
          } /* add_timer_randomness */
        } /* add_disk_randomness */
        ktime_get();
        blk_end_sync_rq() {
          complete() {
            _raw_spin_lock_irqsave();
            try_to_wake_up() {
              _raw_spin_lock_irqsave();
              select_task_rq_fair() {
                set_task_select_cpus();
                select_idle_sibling() {
                  available_idle_cpu();
                } /* select_idle_sibling */
              } /* select_task_rq_fair */
              kthread_is_per_cpu();
              ttwu_queue_wakelist();
              _raw_spin_lock();
              update_rq_clock() {
                update_rq_clock_task() {
                  psi_account_irqtime();
                  update_irq_load_avg();
                } /* update_rq_clock_task */
              } /* update_rq_clock */
              ttwu_do_activate() {
                activate_task() {
                  enqueue_task_fair() {
                    enqueue_entity() {
                      update_curr();
                      __update_load_avg_se();
                      __update_load_avg_cfs_rq();
                      update_cfs_group();
                      place_entity() {
                        avg_vruntime();
                      } /* place_entity */
                      __enqueue_entity();
                    } /* enqueue_entity */
                    cpu_util_cfs();
                    hrtick_update();
                  } /* enqueue_task_fair */
                } /* activate_task */
                check_preempt_curr() {
                  resched_curr();
                } /* check_preempt_curr */
              } /* ttwu_do_activate */
              raw_spin_rq_unlock();
              _raw_spin_unlock_irqrestore();
            } /* try_to_wake_up */
            _raw_spin_unlock_irqrestore();
          } /* complete */
        } /* blk_end_sync_rq */
        scsi_run_queue_async();
      } /* scsi_end_request */
    } /* scsi_io_completion */
  } /* scsi_finish_command */
} /* scsi_complete */